History

1.0b1 (4 April 1994) Beta version 4D external

1.0b2 (7 April)
- improved conversion of 4D Real to string, large numbers possible.

1.0b3 (24 April)
- added a few currencies which use the English language
- included Portuguese language
- unit, minor unit name and thousandfolds are now singular or plural when appropriate.
- now really accepts large numbers.

1.0b4 (26 April)
- added new format.
- improved usage for thousands and word separators.
- added temporarily error messages to track problems.

1.0b5 (29 April)
- making first character uppercase now depends on the script system.
- corrected incorrect number of commas in UK texts.
- improved code to function properly with systems which don't use the dot as the decimal point.

1.0b6 (2 May)
- corrected some typos in the English and Portuguese texts.
- corrected a setting to return the Portuguese texts correct.
- added some code to make usage of the word 'and' between thousand- and hunderfolds optional for each language.

1.0b7 (15 May)
- major rewrite
- when determining if a text must be plural or singular it looks only to one digit not to the whole group of digits when using Italian or Portuguese.
- added texts for 10^12 so can handle larger numbers…
- added French text (and currencies FRF, BEFF, CADF).
- added Italian text (and currency ITL).
- the plain format now can handle up to six digits after the decimal point.
- implemented feature for having the use of 'and' after the thousands optional for each currency.
- added code to handle numbers which are irregular and obtain the correct text from a special resource.
- now handles zero and negative values.
- now includes the HyperCard XFCN.
- corrected problem when using 0.99 which was rounded to 1.0 but messed things up.

1.0b8 (18 May)
- new HyperCard example stack now included (Courtesy Kees Pols).
- HyperCard XFCN didn't work properly when no point was included.
- Omitting the 'one' before the thousands as set with several languages didn't work.
- Less resources needed and installed with the HyperCard XFCN.
- Corrected some trouble with French texts.
- Corrected 'twelf' into 'twelve' in the English texts. Oops!
- Another oops! Forgot some Dutch texts.
- Added German text (and currency DEM).
- Italian text now uses spaces when it should: between the words if the value is larger than 99999.

1.0b9 (24 May)
- Error occured when value '1' was used with languages which don't list the “one” before thousands.
- incorrectly listed '0.7' as 7/100 instead of 70/100.
- HyperCard XFCN didn't notice when the amount was negative.
- resource attribute was set incorrectly which sometimes caused the 4D External to experience memory loss…
- fixed problem with incorrect conversions of values smaller than 100 (as unit or minor unit).

1.0b10 (2 June) Released beta-version
- corrected settings for the Portuguese and Italian syntax.
- corrected some words for the French language.
- That $^%$#^ HyperCard is messing with the strings you pass to my code! The value "0.7" was incorrectly interpreted as 7 cents, but even "0.70"! The first was my fault, the latter HyperCards! And both are solved now. The 4D external did indeed works correct since version 1.0b9.
- moved some more settings from the code to resources.

1.0b11 (8 June)
- added setting to indicate if 'and' is used with hundreds.
- '2013' is now written as 'two thousand' not as 'twenty hundred'.
- corrected truncating the digits for the minor units.

1.0b12 (16 June)
- corrected the Italian syntax.
- fixed problem with the digits after the decimal point when using the plain format.

1.0 (21 June) Final Release
- corrected plurals for thousandfolds in Italian.
- Dutch texts no longer use 'one' before thousands and hundreds.
- German data wasn't copied when using 4D External Mover to install it.

Future Plans
- move more hardcoded settings to resources.
- add more languages and currencies.
- add formats which don't list the full name of the currency (i.e. ”Francs“ instead of ”Belgium Francs“).
- AppleScript osax?

Acknowledgements
Thanks to Tim van der Leeuw, Pete Resnick and Philippe Casgrain for their help for converting the number into a string. This was particularly complicated because the external uses system functions (normally taking in account the system script) which aren't intended to work this way. A simple call-back to 4D wouldn't do the trick either.

Many thanks to Kees Pols for his help on the HyperCard part, and for writing the sample stack.
Also thanks to these people for the translations, discussions and checking the proper working for the different languages:
  Richard E. Howland-Bolton, US (English)
  Jose Alexandre C. M. Correi, PT (Portuguese)
  Fabrizio Oddone, IT (Italian)
  Marco Piovanelli, IT (Italian)
  Francois Pottier, FR (French)
  Frank Reijn, NL (German)
  Judith Suchard, FR (French)
  Max Stern Hanf, NL (Dutch, Belgium and German)
  Hans Verbrugge, NL (Dutch)

© 1994, René G.A. Ros
Freeware.